package com.meta.act.app.system.repository;

import com.meta.act.app.domain.tenant.TenantDo;
import com.meta.act.app.tenant.entity.TenantBase;
import com.meta.act.app.tenant.req.PageTenantQry;
import com.meta.act.app.tenant.req.ro.TenantUserRo;
import com.meta.act.app.tenant.res.TenantPageIo;
import java.util.List;

/**
 * 租户信息表
 * 
 * @author Simon
 * @email 1111111111111@qq.com
 * @date 2020-11-04 15:23:04
 */
public interface TenantBaseRepository{

	/**
	 * insert tenantBase info
	 * @method      insertTenantBase
	 * @param       tenantBase:
	 * @return      void
	 * @author      Simon
	 * @date        2020-11-04 15:23:04
	 */
	int insertTenantBase(TenantBase tenantBase);

	/**
	 * batch insert tenantBase info
	 * @method      insertTenantBase
	 * @param       tenantBases:
	 * @return      void
	 * @author      Simon
	 * @date        2020-11-04 15:23:04
	 */
	void batchInsertTenantBase(List<TenantBase> tenantBases);

	/**
	 * update tenantBase info
	 * @method      updateTenantBase
	 * @param       tenantBase:
	 * @return      int
	 * @author      Simon
	 * @date        2020-11-04 15:23:04
	 */
	int updateTenantBase(TenantBase tenantBase);

	/**
	 * update tenantBase info By pk
	 * @method      updateTenantBaseByPk
	 * @param       tenantBase:
	 * @return      int
	 * @author      Simon
	 * @date        2020-11-04 15:23:04
	 */
	int updateTenantBaseByPk(TenantBase tenantBase);

	/**
	 * list tenantBase info
	 * @method      listTenantBase
	 * @param       tenantBase:
	 * @return      List<TenantBase>
	 * @author      Simon
	 * @date        2020-11-04 15:23:04
	 */
	List<TenantBase> listTenantBase(TenantBase tenantBase);
	List<TenantBase> listTenantByUserId(TenantUserRo tenantUserRo);
	List<TenantPageIo> page(PageTenantQry qry);
	int pageCount(PageTenantQry qry);
	TenantBase getTenantBase(Long tenantId);
	TenantDo getTenantDo(Long tenantId);
}
